﻿using System;

namespace Neovolve.Extensibility.VisualStudio.TestProfilerLink
{
    /// <summary>
    /// The <see cref="Configuration"/>
    /// class is used to reference the set of configured 
    /// <see cref="TestFramework"/> and <see cref="Profiler"/> 
    /// objects that have been loaded from configuration.
    /// </summary>
    internal static class Configuration
    {
        public const String FrameworkConfigurationName = "Test Framework Configuration";
        public const String ProfilerConfigurationName = "Profiler Configuration";

        /// <summary>
        /// Initializes the <see cref="Configuration"/> class.
        /// </summary>
        static Configuration()
        {
            TestFrameworks = new ConfigurationResolver<TestFramework>(FrameworkConfigurationName);
            Profilers = new ConfigurationResolver<Profiler>(ProfilerConfigurationName);
        }

        /// <summary>
        /// Gets or sets the test frameworks.
        /// </summary>
        /// <value>The test frameworks.</value>
        public static ConfigurationResolver<TestFramework> TestFrameworks
        {
            get;
            private set;
        }

        /// <summary>
        /// Gets or sets the profilers.
        /// </summary>
        /// <value>The profilers.</value>
        public static ConfigurationResolver<Profiler> Profilers
        {
            get;
            private set;
        }
    }
}